package com.ruicar.afs.cloud.basic.common.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruicar.afs.cloud.common.core.entity.BaseEntity;
import com.ruicar.afs.cloud.common.modules.contract.enums.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * @author: Lee
 * @date 2020-05-29 09:31:34
 * @description 合同主表
 */
@Data
@Accessors(chain = true)
@TableName(value ="basic_main_info", autoResultMap = true)
public class BasicMainInfo extends BaseEntity<BasicMainInfo> {

	/** 合同号码 */
	@ApiModelProperty("合同号码")
	private String contractNo;
	/** 业务类型 */
	@ApiModelProperty("业务类型")
	private BusinessTypeEnum businessType;
	/** 车辆属性 */
	@ApiModelProperty("车辆属性")
	private String carNature;
	/** 申请单号 */
	@ApiModelProperty("申请单号")
	private String applyNo;
	/** 合同状态 枚举值：合同取消、合同生效、正常结清、提前结清、核销 */
	@ApiModelProperty("合同状态 枚举值：合同取消、合同生效、正常结清、提前结清、核销")
	private ContractStatusEnum contractStatus;
	/** 合同放款模式 */
	@ApiModelProperty("合同放款模式")
	private LoanModelEnum loanModel;
	/** 合同取消日期 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("合同取消日期")
	private Date cancelDate;
	/** 合同到期日期 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("合同到期日期")
	private Date endDate;
	/** 合同激活时间 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("合同激活时间")
	private Date startDate;
	/** 合同放款时间 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("合同放款时间")
	private Date loanDate;
	/** 合同结清日期 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("合同结清日期")
	private Date settleDate;
	/** 合同关闭日期 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("合同关闭日期")
	private Date closeDate;
	/** 进件首次提交日期 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("进件首次提交日期")
	private Date intoFirstDate;
	/** 放款通过日期 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("放款通过日期")
	private Date lendPassDate;
	/** 产品编号 */
	@ApiModelProperty("产品编号")
	private Long productId;
	/** 产品名称 */
	@ApiModelProperty("产品名称")
	private String productName;
	/** 宽限期天数 */
	@ApiModelProperty("宽限期天数")
	private Integer gracePeriodDays;

	/** 渠道名称 */
	@ApiModelProperty("渠道名称")
	private String channelFullName;
	/** 渠道类型 */
	@ApiModelProperty("渠道类型")
	private ChannelTypeEnum channelType;
	/** 渠道归属 */
	@ApiModelProperty(value = "渠道归属")
	private String channelBelong;
	/** 渠道id */
	@ApiModelProperty("渠道id")
	private Long channelId;
	/** 还款日 */
	@ApiModelProperty("还款日")
	private String repaymentDate;
	@ApiModelProperty("合同关闭数据推送状态")
	private YesOrNoEnum sendStatus;
	@TableField(exist = false)
	@ApiModelProperty("特殊拨备额")
	private String specialProvisions;
	@TableField(exist = false)
	@ApiModelProperty("特殊拨备日期")
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date specialProvisionDate;
	@TableField(exist = false)
	@ApiModelProperty("贷款分类(五级分类)")
	private String fiveCategory;
	@TableField(exist = false)
	@ApiModelProperty("挂靠方式")
	private AffiliatedWayEnum affiliatedType;
}
